package org.csu.hotelsys.persistence;

import org.csu.hotelsys.domain.Check_in;
import org.csu.hotelsys.domain.Customer;
import org.csu.hotelsys.domain.Room;
import org.csu.hotelsys.domain.Room_Reserve;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface CustomerMapper {

    //根据用户电话获取预定信息
    List<Room_Reserve> getReserveRoomByPhone(String phone, String cancel, String check_in);

    //根据预定编号获取预定信息
    Room_Reserve getReserveRoomByID(String id);

    //获取预定信息表
    List<Room_Reserve> getReserveRoomList();


    //获取可预订可入住客房列表
    List<Room> getavailableRoomList(String room_status);


    //查询所有入住登记列表
    List<Check_in> getCheck_inList();

    //查询未退房入住表
    List<Check_in> getNoExitCheck_inList(String continue_bool);

    //根据用户身份证获取入住表信息
    List<Check_in> getCheck_inByCredit(String credentials_num);

    //根据check_in_id获取入住表信息
    Check_in getCheck_inById(String check_in_id);

    //获取房间信息
    Room getroom(String room_id);

    //获取特定Customer信息根据身份证
    Customer getCustomerById(String credentials_num);

    //获取所有Customer信息
    List<Customer> getAllCustomer();



    //获取特定日期预定信息数量
    int getNumOfReserve(String time);


    //获取特定日期入住信息数量
    int getNumOfIn(String time);


    //客房预定
    void reserveRoom(Room_Reserve room_reserve);


    //修改预定信息
    void updateReserveRoom(Room_Reserve room_reserve);






    //取消预定信息
    void cancelReserveRoom(Room_Reserve room_reserve);




    //预定转入住更新预定信息表
    void reserveInRoom(Room_Reserve room_reserve);



    //登记入住
    void inRoom(Check_in check_in);


    //换房
    void updateCheck_inRoom(Check_in check_in);

    //退房即修改客房状态
    void updateRoom_status(Room temproom);



    //添加Customer
    void addCustomer(Customer customer);

    //更改Customer
    void  changeCustomer(Customer customer);



}
